离久的小站

hook ojbc_msgSend 函数统计方法时间

2019/06/01 Share

hook objc_msgSend demo

demo 中会使用到汇编的知识,若不了解,我上一篇文章有简略的总结

hook objc_msgSend 之后统计了所有方法的调用时间。

具体步骤:

  • 使用 fishhook hook objc_msgSend
  • 由于 objc_msgSend 是用汇编编写,所以要对 x0 ~ x7进行操作(demo只支持arm64)
  • 记录下方法调用者、方法选择器、返回地址。存储进 pthread 标志中,使其与线程一一对应。
  • 调用原来的 objc_msgSend 方法
  • 返回原来的 objc_msgSend 的返回地址

详细情况在demo已经有中文注释,关于fishhook部分也有对应的中文注释

CATALOG